local tasks = {}

--status 状态(0:没达成,1:已达成没领取奖励,2:已领奖励)
--排序要求 已达成的(status==1)排在前面 其次是 status==0 再者 status==2
table.insert( tasks, {id=1,status=2} ) 
table.insert( tasks, {id=2,status=2} ) 
table.insert( tasks, {id=7,status=0} ) 
table.insert( tasks, {id=3,status=2} ) 
table.insert( tasks, {id=4,status=1} )  --排在第一位
table.insert( tasks, {id=5,status=0} ) 
table.insert( tasks, {id=6,status=0} ) 
table.insert( tasks, {id=7,status=0} ) 
table.insert( tasks, {id=7,status=0} ) 



--返回true的话 a 在前面 返回false保持，所有返回都以a是否需要排在前面作判断即可 

table.sort( tasks, function ( a,b )
    if a.status ~= b.status then
        print("a.status=",a.status,"a.id=",a.id,"b.status=",b.status,"b.id=",b.id)
        if a.status==0 or b.status==0 then
            if a.status==0 then
                return b.status~=1 --1.该处 a的状态是0，未达成 那么b的状态可能是1或2 当b的状态为1时 a不能在前面 所有 return b.status~=1
            end
            if b.status==0 then
                return a.status==1 --2.该处 b的状态0，未达成 那么a的状态可能是1或2 为a的状态为1时才能排在前面 a.status==1
            end
        else
            return a.status < b.status
        end
    else
        return a.id < b.id
    end
    
    return true 
end )

for i, v in ipairs(tasks) do
    print("tasks= v.id",v.id)
end


function CheckFunc()
    return true,""
end

function PrintArr(arr)
    for i, v in ipairs(arr) do
        print("i=",i,"v=",v)
    end
end

if CheckFunc() then
    print("哈哈哈 ....")
end

local arr = {4,5,6,7,8}

table.insert(arr,100)

for i, v in ipairs(arr) do
    print("arr i=",i,"v=",v)
end



